JS - APIs
βnon-hardwareβ APIsβ
Yesβbrowsers expose dozens of other βnon-hardwareβ APIs that SPAs routinely lean on.
Here is a concise checklist (one-liner each) of the best-known ones, grouped by theme:
Storage & stateβ
localStorage/sessionStorageβ key/value strings, ~5β10 MBIndexedDBβ large, async, transactional object storeCacheStorageβ programmatic HTTP cache (Service Worker)Cookie Store APIβ modern promise-based cookie RW (Chromium)
Network & transportβ
WebSocketβ full-duplex TCP-like socket over HTTPServer-Sent Events (EventSource)β one-way push from serverFetch/Request/Responseβ replacement for XHR, streams supportedXMLHttpRequestβ legacy but still usedBeaconβ fire-and-forget POST (analytics, unload)Background Syncβ replay requests when back onlineWebTransportβ QUIC-based WebSocket successor (low-latency streams)
Process & computeβ
Web Workersβ OS thread, no DOM accessSharedArrayBuffer+Atomicsβ memory shared between threadsOffscreenCanvasβ GPU rendering in a workerWebAssemblyβ run C++/Rust at near-native speedCompute Pressureβ observe CPU load (origin trial)
Media & captureβ
MediaDevices.getUserMediaβ camera / micMediaRecorderβ encode chunks to WebM/MP4 in-browserWebCodecsβ low-level audio/video encode/decodeImageCaptureβ grab stills from camera with full controlScreen Capture(getDisplayMedia) β record/tab-cast
Files & drag-and-dropβ
File/FileReader/FileWriterβ read user-selected filesFile System Access APIβ r/w real disk files & foldersDrag-and-Dropβ native desktop-to-browser file drop
Notifications & engagementβ
Notificationsβ system-level toastPush APIβ re-engage users from server (requires SW)Page Visibilityβ detect tab switch / minimizeIdle Detectionβ know when user is away
Performance & diagnosticsβ
Performance/PerformanceObserverβ navigation, resource, paint, long-task, INPUser-Timingβ custom marks & measuresNetInfoβ downlink, rtt, save-data hintReporting APIβ browser sends CSP/deprecation crashes to endpoint
Security & credentialsβ
Credential Managementβ auto-sign-in with saved passwordsWebAuthnβ FIDO2 / Passkey public-key loginPermissionsβ query & request fine-grained rights
Intl & textβ
Intl.*β collation, date/time, number, list, segmenterEncoding APIβ TextEncoder/TextDecoder (UTF-8, etc.)
This list plus the earlier hardware APIs give you the full modern browser βtoolboxβ for SPAs.
Hardware APIsβ
Modern SPAs can tap the following built-in JavaScript / Web APIs to reach real hardware or OS-level features without leaving the browser:
- WebGPU β GPU compute & 3-D rendering (CUDA / ML-class workloads)
- WebGL / WebGL2 β hardware-accelerated 2-D/3-D graphics
- WebXR β VR/AR headsets, motion controllers, room-scale tracking
- Web Audio + Web MIDI β audio I/O, MIDI instruments, low-latency DSP
- WebHID β raw access to human-interface devices (joysticks, pedals, etc.)
- WebUSB β talk to USB devices (3-D printers, micro-controllers)
- WebSerial β direct serial port for IoT, Arduino, Pi
- WebBluetooth β pair with BLE peripherals (heart-rate, bulbs, drones)
- WebNFC β read/write NFC tags on phones & kiosks
- Geolocation β GPS / GLONASS / Galileo coordinates
- DeviceOrientation / DeviceMotion β accelerometer, gyro, compass
- AmbientLight & Proximity β light & distance sensors (mobile)
- WebRTC β camera, mic, peer-to-peer streaming
- Shape Detection (Barcode/Face/Text) β hardware-accelerated recognition
- WebCodecs β low-level video encode/decode for camera pipelines
- WebShare / WebShare Target β native share sheet & file receipt
- Contact Picker β select phone contacts
- WebOTP β read SMS verification codes
- Battery Status β monitor battery level & charging state
- Network Information β connection type, speed, metered hints
- WakeLock β keep screen or system awake
- WebAssembly SIMD & Threads β near-native CPU vector & parallel work
These APIs are exposed directly through navigator.* or window.* and work inside any modern SPA built with React, Vue, Angular, Svelte, etc.